package com.tyl.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisPassword;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;

import java.time.Duration;

@Configuration
@EnableCaching
public class RedisCacheConfig {

    // private Logger logger = LoggerFactory.getLogger(this.getClass());
    //
    // @Autowired
    // private Environment env;
    //
    // /**
    //  * redis基础配置工厂类
    //  * @return
    //  */
    // @Bean
    // public LettuceConnectionFactory redisConnectionFactory(){
    //
    //     RedisStandaloneConfiguration redisConfig = new RedisStandaloneConfiguration();
    //
    //     //设置主机名
    //     redisConfig.setHostName(env.getProperty("string.redis.host"));
    //     //设置端口名
    //     redisConfig.setPort(Integer.parseInt(env.getProperty("string.redis.port")));
    //     //设置密码
    //     redisConfig.setPassword(RedisPassword.of(env.getProperty("string.redis.password")));
    //     return new LettuceConnectionFactory(redisConfig);
    // }
    //
    // /**
    //  * redis缓存配置
    //  * @return
    //  */
    // @Bean
    // public RedisCacheConfiguration redisCacheConfiguration(){
    //     RedisCacheConfiguration redisConfig=RedisCacheConfiguration.defaultCacheConfig()
    //             .entryTtl(Duration.ofSeconds(600))
    //             .disableCachingNullValues();
    //     return redisConfig;
    // }
    //
    // /**
    //  * redis 缓存管理器配置
    //  * @return
    //  */
    // @Bean
    // public RedisCacheManager redisCacheManager(){
    //     RedisCacheManager rcm=RedisCacheManager.builder(redisConnectionFactory())
    //             .cacheDefaults(redisCacheConfiguration())
    //             .transactionAware().build();
    //     return rcm;
    // }

}
